The use of computer systems and computer-related technologies continues to increase at a rapid pace. This increased use of computer systems has influenced the advances made to computer-related technologies. Indeed, computer systems have increasingly become an integral part of the business world and the activities of individual consumers. Computer systems may be used to carry out several business, industry, and academic endeavors. The wide-spread use of computers has been accelerated by the increased use of computer networks, including the Internet.
Many businesses use one or more computer networks to communicate and share data between the various computers connected to the networks. The productivity and efficiency of employees often require human and computer interaction. Users of computer technologies continue to demand an increase in the efficiency of these technologies. Improving the efficiency of computer technologies is always desirable to anyone who uses and relies on computers.
In the Computer Science space, many problems include a database to perform lookups on computer systems. In some cases, the database may exceed the amount of memory available in the computer system. Look-ups into the database may be frequent since file scans occur on a continuous basis at the same time that disk and CPU resources may be maxed out. Currently, a Bloom filter may be used to filter the file hashes in order to avoid computationally expensive on-disk lookups. However, a Bloom filter may also exceed the amount of memory available in the computing system. Also, storing a Bloom filter on disk may be undesirable because the Bloom filter may require an increased number of lookups to determine whether a single element is a member of the Bloom filter, placing a relatively heavy burden on rotational disk drives. A system to determine membership of an element within a set while using a minimum of system memory, disk drive space, CPU resources, and disk drive input/output (I/O) would be desirable.